package com.cty.LinkedList;

import java.util.Stack;

public class question04 {
    //将单链表从头到尾打印一遍
    //方式一：将链表反转再打印，不建议会破坏链表的结构
    //方式二：利用栈这个数据结构压入栈中在取出（利用栈的先进后出的特点）
    public static void ReversePrint(heroNode head){
        //判空
        if(head.next==null){
            System.out.println("改链表为空");
        }
        //创建一个栈用于存放节点
        Stack<heroNode> heroNodes = new Stack<>();
        //创建一个遍历的辅助指针
        heroNode temp=head.next;
        //创建一个临时存储的节点
        heroNode node;
        //遍历链表存入到栈中
        while(temp!=null){
            node=temp;
            temp=temp.next;
            //将有效节点存入栈中
            heroNodes.add(node);
        }
        while(heroNodes.size()>0) {
            System.out.println(heroNodes.pop());
        }
    }

}
